﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace Business
{
    public class Fachada : IFachada
    {
        #region Atributos e Propiedades
        private ContComputador contComputador;
        private ContEvento contEvento;
        private ContFornecedor contFornecedor;
        private ContLocal contLocal;
        private ContLogin contLogin;

        private static Fachada instancia;
        #endregion

        #region Construtor
        public Fachada()
        {
            this.contComputador = new ContComputador();
            this.contEvento = new ContEvento();
            this.contFornecedor = new ContFornecedor();
        }
        #endregion

        public static Fachada getInstancia()
        {
            if (instancia == null)
            {
                instancia = new Fachada();
            }
            return instancia;
        }

        #region Métodos de Computador
        public void InserirComputador(Entities.Computador objeto)
        {
            contComputador.InserirCadastro(objeto);
        }

        public void AlterarComputador(Entities.Computador objeto)
        {
            contComputador.AlterarCadastro(objeto);
        }

        public void ExcluirComputador(Entities.Computador objeto)
        {
            contComputador.ExcluirCadastro(objeto);
        }

        public Entities.Computador RetornarComputador(int chave)
        {
            return contComputador.RetornarCadastro(chave);
        }

        public IList<Entities.Computador> RetornarListaComputador()
        {
            return contComputador.RetornarDados();
        }

        #endregion

        #region Método de Fornecedor
        public void InserirFornecedor(Entities.Fornecedor objeto)
        {
            contFornecedor.InserirCadastro(objeto);
        }

        public void AlterarFornecedor(Entities.Fornecedor objeto)
        {
            contFornecedor.AlterarCadastro(objeto);
        }

        public void ExcluirFornecedor(Entities.Fornecedor objeto)
        {
            contFornecedor.ExcluirCadastro(objeto);
        }

        public Entities.Fornecedor RetornarFornecedor(int chave)
        {
            return contFornecedor.RetornarCadastro(chave);
        }

        public IList<Entities.Fornecedor> RetornarListaFornecedor()
        {
            return contFornecedor.RetornarDados();
        }

        #endregion

        #region Método de Evento
        public void InserirEvento(Entities.Evento objeto)
        {
            contEvento.InserirCadastro(objeto);
        }

        public void AlterarEvento(Entities.Evento objeto)
        {
            contEvento.AlterarCadastro(objeto);
        }

        public void ExcluirEvento(Entities.Evento objeto)
        {
            contEvento.ExcluirCadastro(objeto);
        }

        public Entities.Evento RetornarEvento(int chave)
        {
            return contEvento.RetornarCadastro(chave);
        }

        public IList<Entities.Evento> RetornarListaEvento()
        {
            return contEvento.RetornarDados();
        }
        #endregion

        #region Método de Local
        public void InserirLocal(Entities.Local objeto)
        {
            contLocal.InserirCadastro(objeto);
        }

        public void AlterarLocal(Entities.Local objeto)
        {
            contLocal.AlterarCadastro(objeto);
        }

        public void ExcluirLocal(Entities.Local objeto)
        {
            contLocal.ExcluirCadastro(objeto);
        }

        public Entities.Local RetornarLocal(int chave)
        {
            return contLocal.RetornarCadastro(chave);
        }

        public IList<Entities.Local> RetornarListaLocal()
        {
            return contLocal.RetornarDados();
        }
        #endregion

        #region Método de Login
        public void InserirLogin(Entities.Login objeto)
        {
            contLogin.InserirCadastro(objeto);
        }

        public void AlterarLogin(Entities.Login objeto)
        {
            contLogin.AlterarCadastro(objeto);
        }

        public void ExcluirLogin(Entities.Login objeto)
        {
            contLogin.ExcluirCadastro(objeto);
        }

        public Entities.Login RetornarLogin(int chave)
        {
            return contLogin.RetornarCadastro(chave);
        }

        public IList<Entities.Login> RetornarListaLogin()
        {
            return contLogin.RetornarDados();
        }
        #endregion
    }
}
